//
//  TXHttpService.h
//  TXKit
//
//  Created by YM on 16/11/24.
//  Copyright © 2016年 Tincent. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "HttpDefine.h"

@interface TXHttpService : NSObject

/**
 *  实例化方法
 *
 */
+(instancetype)shareInstance;

/**
 *  Http请求
 *
 *  @param url                        请求地址
 *  @param headers               请求header动态参数
 *  @param params                 请求参数
 *  @param method                 请求方法
 *  @param onCached             缓存数据回调, 如果不需要读写缓存则传nil
 *  @param onFinished        请求完成回调
 */
-(id)requestWithUrl:(NSString*) url
            headers:(NSDictionary *) headers
             params:(NSDictionary *) params
             method:(HttpMethod ) method
         cacheBlock:(void (^)(NSDictionary *cacheObj))onCached
        finishBlock:(void (^)(NSDictionary *jsonObj, NSError *error)) onFinished;

/**
 *  Http请求
 *
 *  @param url                                请求地址
 *  @param headers                       请求header动态参数
 *  @param params                         请求参数
 *  @param isParamSign              是否需要对参数进行签名
 *  @param isResponseJson        是否返回json格式数据
 *  @param method                          请求方法
 *  @param onCached                      缓存数据回调, 如果不需要读写缓存则传nil
 *  @param onFinished                 请求完成回调
 */
-(id)requestWithUrl:(NSString*) url
            headers:(NSDictionary *) headers
             params:(NSDictionary *) params
        isParamSign:(BOOL ) isParamSign
     isResponseJson:(BOOL ) isResponseJson
             method:(HttpMethod ) method
         cacheBlock:(void (^)(id cacheObj))onCached
        finishBlock:(void (^)(id responseObj, NSError *error)) onFinished;

@end
